﻿namespace Sniping.Clothes
{
    /// <summary>
    /// Class for Socks
    /// </summary>
    class Socks:BaseClothes
    {
        #region Enums

        /// <summary>
        /// Gender values
        /// </summary>
        enum Gender { Male, Female }

        /// <summary>
        /// Socks decoration values
        /// </summary>
        enum Fancy { Stripes, Buttons, Pictures }

        #endregion

        #region Properties

        /// <summary>
        /// Unique name
        /// </summary>
        public string UniqueName
        {
            get { return m_UniqueName; }
            set { m_UniqueName = value; }
        }

        /// <summary>
        /// Socks decoration
        /// </summary>
        public Fancy Fancy
        {
            get { return m_Fancy; }
            set { m_Fancy = value; }
        }

        /// <summary>
        /// Gender
        /// </summary>
        public Gender Gender
        {
            get { return m_Gender; }
            set { m_Gender = value; }
        }

        /// <summary>
        /// Socks thickness
        /// </summary>
        public int Thickness
        {
            get { return m_Thickness; }
            set { m_Thickness = value; }
        }

        /// <summary>
        /// Socks type
        /// </summary>
        public string Type
        {
            get { return m_Type; }
            set { m_Type = value; }
        }

        /// <summary>
        /// Production price
        /// </summary>
        public double ProductionPrice
        {
            get { return m_ProductionPrice; }
            set { m_ProductionPrice = value; }
        }

        /// <summary>
        /// Is this socks with toes?
        /// </summary>
        public bool IsWithToes
        {
            get { return m_IsWithToes; }
            set { m_IsWithToes = value; }
        }

        /// <summary>
        /// Sale price
        /// </summary>
        public double SalePrice
        {
            get { return m_SalePrice; }
            set { m_SalePrice = value; }
        }
        
        #endregion

        #region Methods

        /// <summary>
        /// Evolve
        /// </summary>
        public void Stink() { }

        /// <summary>
        /// To be in pre-hole condition
        /// </summary>
        public void Snap() { }

        /// <summary>
        /// Became clean
        /// </summary>
        public void BeLaundered() { }

        #endregion

        #region Private fields

        private string m_UniqueName;
       
        private Fancy m_Fancy;

        private Gender m_Gender;

        private int m_Thickness;

        private string m_Type;

        private double m_ProductionPrice;

        private bool m_IsWithToes;

        private double m_SalePrice;

        #endregion        
    }
}
